package util;

import java.io.FileOutputStream;
import java.io.IOException;

/**
 * @author cxt
 * @date 2020/7/22
 * 批量生成20位的无重复ID，并输入tset.txt文件中
 * 注意：test.txt文件在src同级目录下
 */
public class MyUUID {

    /**
     * 大小写和数组的组合
     */
    public static String strId() {
        StringBuilder val = new StringBuilder();
        java.util.Random random = new java.util.Random();
        for (int i = 0; i < 20; i++) {//定义id位数
            // 输出字母还是数字
            String charOrNum = random.nextInt(2) % 2 == 0 ? "char" : "num";
            // 字符串
            if ("char".equalsIgnoreCase(charOrNum)) {
                // 取得大写字母还是小写字母
                int choice = random.nextInt(2) % 2 == 0 ? 65 : 97;
                val.append((char) (choice + random.nextInt(26)));
            } else {
                // 数字
                val.append(String.valueOf(random.nextInt(10)));
            }
        }
        return val.toString();
    }

    /**
     * 写入test.txt文件
     * 文件位置：在项目src目录下
     */
    public static void writ() {
        FileOutputStream fos = null;
        try {
            // 先输出100个ID
            for (int i = 1; i < 100; i++) {
                String str = strId();
                //true不覆盖已有内容
                fos = new FileOutputStream("test.txt", true);
                //写入
                fos.write(str.getBytes());
                // 写入一个换行
                fos.write("\r\n".getBytes());
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (fos != null) {
                try {
                    fos.flush();
                    fos.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }

    public static void main(String[] args) {
        System.out.println(strId());
    }
}
